syntax on "语法提示
filetype on "识别文件类型
filetype indent on
filetype plugin on
filetype plugin indent on

"设置LEADER键位空格键
let mapleader=" "
"有的终端需要此行才能保证配色正确
let &t_ut=''
"设置vim在不同模式使用不同的光标
let &t_SI="\<Esc>]50;CursorShape=1\x7"
let &t_SR="\<Esc>]50;CursorShape=2\x7"
let &t_EI="\<Esc>]50;CursorShape=0\x7"

set nocompatible "不兼容vi
set encoding=utf-8
set number "行号
set cursorline "光标行显示下划线
set wrap "字不会超出窗口宽度
set showcmd "显示输入命令
set showmatch "显示括号匹配
set showmode "在底部显示，当前处于命令模式还是插入模式

"set bg=dark "设置黑色背景
":colorscheme desert
"设置缩进 1、设置TAB显示长度为4空格 2.设置TAB实际长度为4空格 3、设置自动缩进长度为4空格 4、继承前一行的缩进方式，适用于多行注释
set tabstop=4
set softtabstop=4
set shiftwidth=4
set expandtab "按下tab自动转换为空格

"在命令模式下，按下tab可以自动补全命令
set wildmenu
set wildmode=longest,list,full

set backspace=indent,eol,start "使退格键可以删掉任何东西,主要用于让退格键从行首回到上一行行尾

set hlsearch "搜索高亮  
"每次打开vim时取消高亮,不这么做,重新打开文件时可能会有残留
exec "nohlsearch"
set incsearch "高亮显示搜索的匹配过程，每输入一个字符，就自动跳转到第一个匹配结果

set ignorecase "忽略大小写
set smartcase  "智能大小写,搜索栏输入大小写混合的单词时,区分大小写
set mouse=a    "
set autoindent "自动缩进，按下回车后，下一行会自动根上一行的缩进保持一致 
set smartindent "智能缩进
set ruler "在状态栏显示光标当前位置，哪一行哪一列
set undofile

set list "显示隐藏字符
"指定tab字符的显示,指定行尾空格的显示,指定当行首左侧有字符的提示,指定行尾右侧有字符的提示i
set listchars=tab:>-:,trail:·,precedes:«,extends:»

set scrolloff=5 "保证光标上下方尽可能保持5行距离

" 使用vim的modeline来设置当前文件的textwidth,
" 避免输入超过78个字符时自动换行
" 使用:verbose set textwidth?命令可以看到vim默认
" 为vim配置脚本设置了textwidth为78,当输入超过78个字符
" 并按下空格键时会自动换行.将textwidth设成0关闭该功能
set tw=0

" 打开状态栏,与statusline配合使用
" set laststatus=2

"LEADER键(空格键)+回车键 取消高亮
noremap <LEADER><CR> :nohlsearch<CR>

"使用 jk 进入 normal模式
inoremap jk <Esc>`^ 

"左右分屏,光标在左屏
map th :set nosplitright<CR>:vsplit<CR>
"左右分屏,光标在右屏
map tl :set splitright<CR>:vsplit<CR>
"上下分屏,光标在下屏
map tj :set splitbelow<CR>:split<CR>
"上下分屏,光标在上屏
map tk :set nosplitbelow<CR>:split<CR>

"切换到左侧分屏
map <LEADER>h <C-w>h
"切换到下侧分屏
map <LEADER>j <C-w>j
"切换到上侧分屏
map <LEADER>k <C-w>k
"切换到右侧分屏
map <LEADER>l <C-w>l

"减少上或下分屏大小
map t<up> :res +5<CR>
"增加上或下分屏大小
map t<down> :res -5<CR>
"减少左或右分屏大小
map t<left> :vertical resize-5<CR>
"增加左或右分屏大小
map t<right> :vertical resize+5<CR>

"创建标签页
map tc :tabe<CR>
"标签页前翻
map tp :tabp<CR>
"标签页后翻
map tn :tabn<CR>

"切换到上下分屏
map ts <C-w>t<C-w>K
"切换到左右分屏
map tv <C-w>t<C-w>H
